import sqlite3
import os

# 连接到数据库
conn = sqlite3.connect('file_data_2.db')
cursor = conn.cursor()

# 获取要删除的文件名或路径
file_name_to_delete = 'node_modules'  # 替换为要删除的文件名或路径

# 查询要删除的记录的文件路径
cursor.execute("SELECT path FROM files WHERE  path like ?", (file_name_to_delete, file_name_to_delete))
file_paths_to_delete = cursor.fetchall()

# 删除数据库中匹配指定文件名或路径的记录
cursor.execute("DELETE FROM files WHERE name = ? OR path = ?", (file_name_to_delete, file_name_to_delete))
deleted_count = cursor.rowcount  # 获取删除的记录数

# 提交更改
conn.commit()

# 关闭数据库连接
conn.close()

# 从文件系统中删除相应的文件或目录
for file_path in file_paths_to_delete:
    if os.path.exists(file_path[0]):
        os.remove(file_path[0])  # 或者使用 os.rmdir() 删除目录
        print(f"已从文件系统中删除: {file_path[0]}")
    else:
        print(f"文件或目录不存在: {file_path[0]}")

# 输出删除结果
print(f"已从数据库中删除 {deleted_count} 条记录，其文件名或路径为: {file_name_to_delete}")
